/**

 帮助信息控制器类，处理与帮助信息相关的各种 HTTP 请求。
 */
package com.jsp.lostfound.controller;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import com.jsp.lostfound.entity.HelpInfo;
import com.jsp.lostfound.service.HelpInfoService;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class HelpInfoController {

	@Autowired
	private HelpInfoService helpInfoService;

	/**
	 * 跳转到帮助中心页面。
	 *
	 * @param divClass div元素的class属性值
	 * @return 帮助中心页面视图
	 */
	@RequestMapping("/forwardHelpPage")
	public ModelAndView forwardHelpPage(String divClass){
		ModelAndView modelAndView = new ModelAndView("forward:helpCenter.jsp");
		modelAndView.addObject("divClass", divClass);
		return modelAndView;
	}

	/**
	 * 添加一条帮助信息到数据库。
	 *
	 * @param helpInfo 待添加的帮助信息
	 * @param out 用于输出添加结果的PrintWriter对象
	 */
	@RequestMapping("/publishHelpInfo")
	public void publishHelpInfo(HelpInfo helpInfo, PrintWriter out) {
		Date tasktime = new Date(System.currentTimeMillis());
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		helpInfo.setPublishTime(df.format(tasktime));
		helpInfoService.addHelpInfo(helpInfo);
		out.write("成功添加一条帮助信息");
	}

	/**
	 * 获取帮助信息数量。
	 *
	 * @return 帮助信息数量
	 */
	@RequestMapping("/getHelpInfoNums")
	@ResponseBody
	public String getHelpInfoNums() {
		return String.valueOf(helpInfoService.showHelpNums());
	}

	/**
	 * 分页加载帮助信息。
	 *
	 * @return 分页加载的帮助信息列表
	 */
	@RequestMapping("/loadHelpInfoData")
	@ResponseBody
	public List<HelpInfo> loadHelpInfoData(){
		return helpInfoService.showHelpInfo();
	}

	/**
	 * 跳转到编辑帮助信息页面。
	 *
	 * @param id 待编辑帮助信息的ID
	 * @return 编辑帮助信息页面视图
	 */
	@RequestMapping("/editHelpInfo")
	public ModelAndView editHelpInfo(Integer id) {
		ModelAndView modelAndView = new ModelAndView("admin/editHelpInfo");
		HelpInfo helpInfo = helpInfoService.showHelpInfoDetail(id);
		modelAndView.addObject("helpInfo", helpInfo);
		return modelAndView;
	}

	/**
	 * 保存编辑后的帮助信息到数据库。
	 *
	 * @param helpInfo 编辑后的帮助信息
	 * @param out 用于输出修改结果的PrintWriter对象
	 */
	@RequestMapping("/saveHelpInfo")
	public void saveHelpInfo(HelpInfo helpInfo, PrintWriter out) {
		helpInfoService.editHelpInfo(helpInfo);
		out.write("帮助信息修改成功");
	}

	/**
	 * 从数据库中删除指定ID的帮助信息。
	 *
	 * @param id 待删除帮助信息的ID
	 * @param out 用于输出删除结果的PrintWriter对象
	 */
	@RequestMapping("/removeHelpInfo")
	public void removeHelpInfo(Integer id, PrintWriter out) {
		helpInfoService.removeHelpInfo(id);
		out.write("删除成功");
	}
}